package date;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.SimpleTimeZone;

/**
 * 位置：java.util
 * Date 类来封装当前的日期和时间
 * Date 类提供两个构造函数来实例化 Date 对象 Date( ) Date(long millisec) 毫秒
 */
public class Demo01 {
    public static void main(String[] args) {
        //1.获取当前日期时间
        //初始化Date对象
        Date date = new Date();
        //使用toString()函数显示日期时间
        System.out.println(date.toString());
        //2.日期的比较
        //2.1使用 getTime() 方法获取两个日期（自1970年1月1日经历的毫秒数值），然后比较这两个值。
        //2.2使用方法 before()，after() 和 equals()
        System.out.println(new Date(1999, 12, 4).before(new Date(2022, 8, 18)));
        System.out.println(new Date(2050, 8, 21).after(new Date(2022, 8, 18)));
        //2.3使用 compareTo() 方法，它是由 Comparable 接口定义的，Date 类实现了这个接口。
        //3 格式化日期
        //3.1使用SimpleDateFormat
        SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//pattern:模式
        //yyyy 是完整的公元年，MM 是月份，dd 是日期，HH:mm:ss 是时、分、秒。
        //注意:有的格式大写，有的格式小写，例如 MM 是月份，mm 是分；HH 是 24 小时制，而 hh 是 12 小时制。
        System.out.println("当前时间为：" + ft.format(date));
        //"年-月-日"格式/3,2使用print格式化日期
        //使用两个字母格式，它以 %t 开头并且以下面表格中的一个字母结尾
        //c的使用 包括全部日期和时间信息
        System.out.printf("全部日期和时间信息：%tc%n",date);//星期四 八月 18 09:57:02 CST 2022
        //f的使用
        System.out.printf("年-月-日格式：%tF%n",date);//"年-月-日"格式
        //d的使用
        System.out.printf("月/日/年格式：%tD%n",date);//2022-08-18
        //r的使用 "HH:MM:SS PM"格式（12时制）
        System.out.printf("HH:MM:SS PM格式（12时制）：%tr%n",date);//09:57:02 上午
        //t的使用 "HH:MM:SS"格式（24时制）
        System.out.printf("HH:MM:SS格式（24时制）：%tT%n",date);//09:57:02
        //R的使用 "HH:MM"格式（24时制）
        System.out.printf("HH:MM格式（24时制）：%tR",date);//09:57



    }
}
